package com.ruoyi.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * LogOperation TODO 自定义注解---记录操作日志
 *
 * @author augustqin
 * @Date 2024/9/12 13:57
 */

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface LogOperation {
    String value() default "";
}

/**
 *@Retention指定注解的保留策略
 * 即注解在什么阶段可用，可选值有：
 * RetentionPolicy.SOURCE：注解仅在源码阶段保留，编译时丢弃。
 * RetentionPolicy.CLASS：注解在编译时保留，但在运行时丢弃（默认值）。
 * RetentionPolicy.RUNTIME：注解在运行时保留，可以通过反射获取
 *
 *
 *@Target指定注解的作用目标
 * 最常用的元注解是@Target，使用@Target可以定义Annotation能够被应用于源码的哪些位置：
 * 类或接口：ElementType.TYPE
 * 字段：ElementType.FIELD
 * 方法：ElementType.METHOD
 * 构造方法：ElementType.CONSTRUCTOR
 * 方法参数：ElementType.PARAMETER
 *
 */